home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
PROGRAMM
/
BASIC
/
0007.ZIP
/
LORES.DOC
< prev
next >
Wrap
Text File
|
1984-03-21
|
16KB
|
424 lines
*********************************************************************
* IBM PC LOW RESOLUTION COLOR MODE INTERFACE ROUTINES *
*********************************************************************
THE 'UNSUPPORTED' 160X100X16 COLOR MODE OF THE IBM COLOR GRAPHICS CARD
MAY BE LOW RESOLUTION, BUT IT IS QUITE COLORFUL. IN ORDER TO USE THIS
MODE FROM INTERPRETED AND COMPILED BASIC YOU NEED A CORE OF GRAPHICS
PRIMITIVES THAT WILL ENABLE YOU TO DRAW DOTS, LINES, BOXES AND CIRCLES
IN SIXTEEN COLORS. PRINTING TEXT ON THIS SCREEN WOULD ALSO BE NICE. THE
SERIES OF FILES DESCRIBED BELOW WILL ALLOW YOU TO DO THIS, AND MORE.
IF YOU WOULD LIKE TO GET A COPY OF ALL THE LATEST LORES ROUTINES, AND
PRINTED DOCUMENTATION, SEND $5.00 AND A DISK OR JUST $10.00 TO:
MARTY SMITH
310 CINNAMON OAK LANE
HOUSTON, TX 77079
GETTING STARTED:
IN ADDITION TO THIS DOCUMENTATION, THERE ARE SEVERAL FILES THAT MAKE UP
THE PACKAGE.
(1) LORES.USR - THE BLOADABLE MODULE FOR INTERPRETED BASIC.
(2) LORES.OBJ - AN OBJECT MODULE FOR COMPILED BASIC.
THESE TWO FILES MAY NEED TO CREATED FROM .HEX FILES.
IF YOU SEE FILENAMES OF LOUSR.HEX/LOOBJ.HEX THIS
IS THE CASE. CONVERT LOUSR.HEX TO LORES.USR, LOOBJ.HEX
TO LORES.OBJ.
(3) LODEMO.BAS - A BASIC PROGRAM USING ALL THE LORES FEATURES.
(4) LORES.ASM - THE ASSEMBLER SOURCE FOR THE ROUTINES.
THE TWO MODULES BOTH COME FROM THIS FILE.
(5) LODEMO.EXE - THE COMPILED VERSION OF LODEMO.BAS
(6) LORES.EXE - THE ORIGINAL ASSEMBLER DEMO OF LORES MODE.
(7) READ.ME - THIS FILE.
TO RUN THE BASIC PROGRAM, YOU NEED LORES.USR IN ADDITION TO LODEMO.BAS,
PREFERABLY BOTH ON THE DEFAULT DRIVE. IF THIS IS NOT SO, THE PROGRAM
WILL ASK FOR THE FILENAME. THE BEST WAY TO GET STARTED IS TO RUN
LODEMO.BAS. AFTERWARDS YOU MAY WANT TO LIST THIS FILE TO SEE HOW THE
ROUTINES WORK.
LORES INTERFACE ROUTINES - 3/14/84 - PAGE 1
MEMORY, AND LOADING USR MODULES:
IF YOU KNOW ALL ABOUT RESERVING MEMORY FOR BASIC ASSEMBLER ROUTINES YOU
DON'T NEED TO READ THIS SECTION, JUST THIS PARAGRAPH. THE LORES MODULE
FOR INTERPRETED BASIC IS CALLED LORES.USR, 2406 BYTES IN SIZE AND IS
TOTALLY SELF-CONTAINED. IT USES THE BASIC STACK, AND DATA SEGMENT, AND
ADDRESSES MEMORY DIRECTLY ON THE COLOR CARD. FOR COMPILED BASIC,
LORES.OBJ NEEDS TO BE LINKED TO YOUR PROGRAM. LORES.OBJ IS IDENTICAL TO
LORES.USR EXCEPT FOR FORMAT AND METHOD OF HANDLING BASIC STRINGS, WHICH
CAN BE 32767 CHARACTERS IN COMPILED BASIC.
WITH DOS 2.+ ALLOCATING MEMORY FOR MACHINE ROUTINES BECOMES A LITTLE
MORE COMPLICATED. WITH DOS 1.1 YOU PRETTY MUCH KNEW WHERE BASIC WOULD
BE AND COULD COME UP WITH GENERAL PURPOSE ADDRESSES FOR MACHINE ROU-
TINES. WITH DEVICE DRIVERS FOR RAM DISKS AND THE LIKE, BASIC MAY BE
LOADED ANYWHERE. LUCKILY THERE IS HOPE. AT LOCATION HEX 510 IN SEGMENT
0 BASIC STORES THE SEGMENT ADDRESS WHERE IT IS LOCATED. IF YOU HAVE
PLENTY OF MEMORY, I.E. MORE THAN 110,000 BYTES FREE AFTER DOS AND DEVICE
DRIVERS, ALL YOU NEED TO DO FOR A VALUE FOR LORES'S SEGMENT IS:
10 ' SETUP TO BLOAD LORES.USR - PLENTY OF MEMORY, ANY DOS.
DEF SEG=0 : X=PEEK(&H510) + 256*PEEK(&H511) ' BASIC SEGMENT
LOSEG% = X + &H1001 ' ADD 64K + BREATHING ROOM.
DEF SEG=LOSEG% ' POINT BASIC TO IT.
BLOAD "LORES.USR",0 ' LOAD ROUTINE.
DEF SEG ' POINT BACK TO BASIC.
LOSEG% NOW HAS THE SEGMENT VALUE RIGHT ON TOP OF BASIC, WHEREVER BASIC
IS. YOU CAN'T POKE OR BLOAD LORES.USR INTO AN ARRAY. IN ADDITION TO
BEING INCONVENIENT, THIS METHOD WON'T WORK AS LORES HAS A FEW INTERNAL
VARIABLES AND THESE ARE STORED AT RELATIVE OFFSETS TO ZERO. IN AN ARRAY
THESE OFFSETS WILL END UP IN THE BASIC WORKAREA, WITH UNPREDICTABLE
RESULTS.
IF YOU HAVE LESS THAN 110,000 BYTES FREE, BASIC WILL HAVE SET ITS STACK
AND TOP OF STRING SPACE TO THE TOP OF MEMORY IN YOUR MACHINE. THIS
REQUIRES THAT YOU TELL BASIC NOT TO USE ALL THIS MEMORY IN ORDER TO
LEAVE SPACE FOR LORES. THE FOLLOWING CODE WILL DO THE TRICK. THIS
*MUST* BE DONE BEFORE ANYTHING BUT REM STATEMENTS IN YOUR PROGRAM:
10 ' GENERAL ROUTINE TO LOAD LORES, ACCOUNTS FOR LOW MEMORY.
DEF SEG=0 : X=PEEK(&H510) + 256*PEEK(&H511) ' SAME AS ABOVE
Y = PEEK(&H413) + 256*PEEK(&H414) ' MEMORY SIZE IN K'S.
Y = Y*64 ' ADJUST MEMORY SIZE TO SEGMENT PARAGRAPHS.
Z = Y - X ' TOP OF MEMORY - BASIC SEGMENT = TOTAL AVAILABLE.
Z = Z - 152 ' LORES IS ABOUT 151 PARAGRAPHS LONG. 2406 BYTES.
Z = Z*16 ' MEMORY AVAILABLE FOR BASIC IN BYTES.
IF Z < 65536! THEN CLEAR ,Z,2048 ELSE CLEAR ,,2048
' AFTER THIS X, Y AND Z HAVE BEEN CLEARED TO ZERO, SO
DEF SEG=0 : X = PEEK(&H510) + 256*PEEK(&H511)
Y=(PEEK(&H413) + 256*PEEK(&H414)) * 64
Z = Y - X
IF Z < 4096 THEN LOSEG% = X + Z - 150 ELSE LOSEG%= X + 4097
DEF SEG=LOSEG% : BLOAD "LORES.USR",0 : DEF SEG
LORES INTERFACE ROUTINES - 3/14/84 - PAGE 2
LOADING LORES.OBJ INTO COMPILED BASIC:
IT IS MUCH EASIER TO COMPILE LORES PROGRAMS THAN TO BLOAD A MODULE. THE
ONLY CHANGE FROM INTERPRETED VERSIONS TO COMPILED IS TO DELETE OR COM-
MENT OUT THE LINES THAT LOAD THE USR MODULE, SUCH AS THOSE DESCRIBED
ABOVE. THE DEF SEG'S IN CALL'S CAN BE LEFT IN SINCE THEY DON'T AFFECT
CALL. AFTER YOU DO THIS, COMPILING A LORES PROGRAM IS DONE WITH,
BASCOM YOURPROG\WHATEVER;
LINK YOURPROG+LORES;
FORMAT OF COMMANDS:
ALL THE LORES ROUTINES ARE CALLED FROM BASIC THE SAME WAY. THIS FORMAT IS:
DEF SEG=LOSEG%
CALL LORES%(ROUTINE%,ARRAY%(0))
DEF SEG
ARRAY% IS A SIX ELEMENT INTEGER ARRAY WHERE PARAMETERS FOR THE CALL ARE
STORED. SET UP ARRAY% BY DIM ARRAY%(5). LOSEG% IS THE SEGMENT WHERE THE
LORES MODULE HAS BEEN BLOADED, ROUTINE% IS THE NUMBER OF THE DESIRED
FUNCTION (SEE BELOW), AND LORES% IS AN INTEGER WHOSE VALUE IS *ALWAYS*
ZERO.
COMMAND EXAMPLES:
FOR EXAMPLE, SAY YOU WANT TO DRAW A LINE FROM (10,20)-(120,60) IN RED.
TO DO THIS YOU WOULD TYPE:
100 ' DRAW A LINE. A(0)-A(3) ARE SCREEN COORDINATES,
ARRAY%(0)= 10: ARRAY%(1)= 20: ARRAY%(2)= 120: ARRAY%(3)= 60
ARRAY%(4)= 4: ARRAY%(5)= 0 ' 4=RED, 0=WHOLE LINES.
ROUTINE%= 4 ' 4=LINE ROUTINE.
DEF SEG= LOSEG% : CALL LORES%(ROUTINE%,ARRAY%(0)) : DEF SEG
IN THE CASE OF THE LINE FUNCTION, ARRAY%(5) SHOULD BE ZERO TO DRAW THE
WHOLE LINE, OR SOME OTHER NUMBER TO DRAW PART OF THE LINE. IF YOU WANT
TO XOR THE LINE, SET THE COLOR TO ARRAY%(4)=ARRAY%(4) OR &H80. XORING A
LINE TWICE ERASES IT WITHOUT DESTROYING PREVIOUS MATERIAL.
TO DRAW A CIRCLE IN THE MIDDLE OF THE SCREEN WITH A RADIUS OF 40 IN
YELLOW, AND AN ASPECT RATIO FOR A NORMAL CIRCLE:
200 ' DRAW A CIRCLE.
ARRAY%(0)= 80: ARRAY%(1)= 50: ARRAY%(2)= 40 ' X,Y,RADIUS
ARRAY%(3)= 5: ARRAY%(4)= 6 ' ASPECT RATIO. NUMER/DENOM
ARRAY%(5)= 14 : ROUTINE%=6 ' COLOR YELLOW, 6=CIRCLE
GOSUB 1000
GOTO 300
...
...
1000 DEF SEG= LOSEG% : CALL LORES%(ROUTINE%,ARRAY%(0)) : DEF SEG
1010 RETURN
LORES INTERFACE ROUTINES - 3/14/84 - PAGE 3
EXAMPLES, CONT.
NOW SAY YOU WANT TO PAINT THIS CIRCLE IN LIGHT RED,
' PAINT AN AREA, 12=LIGHT RED (FILL), 14=YELLOW (BOUNDARY)
300 ROUTINE%= 16: ARRAY%(2)= 12: ARRAY%(3)= 14 : GOSUB 1000
A(2) IS THE FILL COLOR, A(3) IS THE BOUNDARY COLOR. WHAT HAPPENED TO
A(0) AND A(1)? IN THIS CASE THESE WERE NOT NEEDED. LORES DOES NOT CHANGE
ARRAY VALUES EXCEPT TO RETURN A VALUE. SINCE WE JUST GOT THROUGH DRAW-
ING THE CIRCLE, THE SCREEN COORDINATES ARE STILL X=160, Y=80 WHICH IS
FINE FOR PAINT. ORDINARILY YOU WOULD SET THE X AND Y VALUES. PAINT WITH
SIXTEEN COLORS CAN TURN INTO A CLEAR SCREEN FUNCTION PRETTY EASILY.
YOU ARE ENCOURAGED TO EXPERIMENT WITH THESE ROUTINES. THE CORE OF LORES
IS THE PLOT A DOT FUNCTION, WHICH IS RANGE CHECKED AND WON'T DO ANYTHING
BAD IF IT IS PASSED A VALUE OUT OF RANGE. THIS MEANS THAT CIRCLES AND
LINES AND BOXES LARGER THAN SCREEN SIZE CAN BE CREATED WITHOUT WORRYING
THAT ODDBALL VALUES ARE BEING STASHED IN MEMORY SOMEWHERE. IF YOU SET
UP A SITUATION WHERE A CIRCLE WITH A RADIUS OF ZERO IS SPECIFIED, THE
CALL WILL SIMPLY RETURN WITHOUT DOING ANYTHING, AS IT SHOULD.
REMEMBER THAT THE ARRAY PASSED TO LORES IS AN INTEGER ARRAY. YOU CAN
MAKE SURE OF THIS BY SPECIFYING DEF INT A-Z EARLY IN YOUR PROGRAM, AS
THE LODEMO PROGRAM DOES, OR ATTACH A PERCENT SIGN (%) TO ALL VALUES IN
THE CALL LORES%(ROUTINE%,ARRAY%(0)). USING DEFAULT SINGLE PRECISION
VALUES WILL NOT DO ANYTHING WORTHWHILE IN LORES AND WILL PRODUCE RESULTS
YOU PROBABLY DIDN'T HAVE IN MIND.
EQUIPMENT REQUIRED:
LORES OF COURSE NEEDS A COLOR GRAPHICS ADAPTOR. A FURTHER NEED IS AN
RGB MONITOR. LORES IS A VARIATION ON 80 COLUMN COLOR, AND HAS THE SAME
PROBLEM THIS MODE HAS WITH TV'S AND MOST MONITORS, I.E. GRAY SCALE OR
WORSE INSTEAD OF COLOR.
THERE IS NO REAL NEED FOR EXTENSIVE MEMORY, BUT FOR CONVENIENCE AT LEAST
128K IS REQUIRED. A COMPILED PROGRAM USING LORES.OBJ COULD CONCEIVABLY
RUN IN 64K. IF YOU DON'T GET THE FULL 60K OF WORKSPACE WHEN YOU ENTER
BASIC, YOU NEED TO RESERVE MEMORY FOR LORES. SEE BELOW FOR DETAILS.
LORES INTERFACE ROUTINES - 3/14/84 - PAGE 4
LORES ROUTINES:
THESE ARE THE LORES ROUTINES, UNNEEDED ARRAY VALUES CAN BE ANY VALUE.
ROUTINE:
ARRAY%(0),ARRAY%(1),ARRAY%(2),ARRAY%(3),ARRAY%(4),ARRAY%(5)
------- ---------------------------------------------------------------
0 = INITIALIZE.
NO VALUES ARE NEEDED, JUST A DUMMY VALUE. VIDEO MODE STORED.
1 = CLEAR SCREEN.
COLOR (0-15).
2 = PLOT A DOT.
X(0-159), Y (0-99), COLOR.
3 = GET A DOT.
X(0-159), Y (0-99), V(2) RETURNS COLOR OR -1 FOR OUT OF RANGE.
4 = DRAW A LINE.
X1, Y1, X2, Y2, COLOR, 0=WHOLE LINE,
OTHER FOR PARTIAL LINE.
5 = DRAW A BOX.
X1, Y1, X2, Y2, COLOR.
6 = DRAW A CIRCLE. ASPECT RATION OF 5/6= CIRCLE, OTHER= ELLIPSE.
X, Y, RADIUS, ASPECT RATIO 1,2, COLOR.
1 = NUMERATOR, 2 = DENOMINATOR
7 = PRINT LETTER 1.
ROW (0-11),COL (0-19),ASCII CHAR.,COLOR.
8 = PRINT LETTER 2.
ROW (0-11),COL (0-19),ASCII CHAR.,COLOR FGND, COLOR BKGRND.
9 = PRINT A STRING.
ROW (0-11),COL (0-19),VARPTR(MESSAGE$),COLOR.
ROW AND COL COME BACK POINTING TO THE NEXT SCREEN POSITION.
CARRIAGE RETURN AND BACKSPACE HANDLED CORRECTLY.
SCREEN WILL SCROLL AT BOTTOM LINE.
COLOR USES ROUTINE 7 ABOVE FOR JUST A COLOR, OR 8 IF COLOR IS
ENTERED AS SAY &H17 FOR WHITE ON BLUE BACKGROUND.
10 = NOT USED AT THIS TIME. SIMPLY RETURNS.
11 = SINE FUNCTION.
ANGLE IN DEGREES, SIN*10000 RETURNED.(IN V(1))
12 = COSINE FUNCTION.
ANGLE IN DEGREES, COS*10000 RETURNED.(IN V(1))
13 = RANDOM NUMBER FUNCTION.
0 TO RANDOMIZE, OTHER RETURNS 1 TO X IN V(1).
14 = RESTORE SCREEN.
NO VALUES NEEDED. RETURNS COLOR SCREEN TO MODE AT INITIALIZATION
IF CURRENT SCREEN WAS COLOR. IF ON MONOCHROME MONITOR, NOTHING.
15 = MODE FUNCTION.
RETURNS -1 IN V(0) IF LORES IS ACTIVE, OTHERWISE IBM VIDEO MODE.
16 = PAINT.
X (0-159), Y (0-99), FILL COLOR, BOUNDARY COLOR.
-----------------------------------------------------------------------
LORES INTERFACE ROUTINES - 3/14/84 - PAGE 5
MONITORS:
IF YOU HAVE BOTH A MONOCHROME MONITOR AND COLOR BOARD, YOU CAN DEVELOP
YOUR PROGRAMS ENTIRELY ON THE MONOCHROME MONITOR, DISPLAYING ON COLOR.
THIS IS AN ADVANTAGE OF BEING A NON-STANDARD SET-UP. SINCE THERE IS NO
'OFFICIAL' SET-UP, THE COLOR CARD AND ITS MEMORY IS ACCESSED DIRECTLY.
WORKING ON A COLOR MONITOR ALONE YOU SHOULD SET UP A SUBROUTINE USING
THE RESTORE SCREEN FUNCTION, NUMBER 14. YOU DO THIS BY:
400 ' RESTORE COLOR SCREEN.
DEF SEG=LOSEG% ' LOSEG% IS THE SEGMENT YOU BLOADED LORES.
CALL LORES%(14,DUMMYARRAYVALUE%) ' LORES% IS ALWAYS ZERO
DEF SEG ' DUMMYETC NEEDED, BUT NOT USED.
RETURN
ASSIGN THE LINE NUMBER OF THIS ROUTINE TO A FUNCTION KEY WHILE YOU ARE
WORKING ON A PROGRAM AND YOU WILL BE ABLE TO SEE WHAT YOU ARE TYPING
AGAIN. FOR EXAMPLE:
KEY 7,"GOSUB 400"+CHR$(13)
WOULD ASSIGN FUNCTION KEY 7 TO RESTORE A LORES SCREEN IN COMMAND MODE.
PAINTING:
ONE OF THE NIFTY FEATURES OF LORES IS THE PAINT ROUTINE. THIS WORKS
VIRTUALLY IDENTICALLY TO THE PAINT FUNCTION IN BASICA, EXCEPT OF COURSE
WITH MANY MORE COLOR CHOICES. IT ALSO HAS THE SAME APPETITE FOR STACK
SPACE AS THE BASIC FUNCTION. UNLESS YOU INTEND TO DO NO PAINTING AT
ALL, OR WILL ONLY FILL SMALL EVENLY DEFINED SHAPES, OR WILL NEVER MAKE A
MISTAKE AND SPECIFY THE WRONG COLOR YOU SHOULD SET ASIDE SOME EXTRA
STACK SPACE. YOU DO THIS IN BASIC WITH THE CLEAR COMMAND. THE FORMAT
OF CLEAR IS:
CLEAR [,WORKSPACE,STACKSPACE]
I HAD CONVINCED MYSELF THAT 2048 BYTES STACK WAS PLENTY UNTIL I MADE A
DESIGN THAT OVERRAN EVEN THIS. I STILL THINK 2048 BYTES IS A GOOD
AMOUNT TO RESERVE, ESPECIALLY IF YOU ARE PRETTY SURE IN ADVANCE OF WHAT
WILL BE PAINTED. THE FREE FORM DRAWING ROUTINE IN LODEMO ALLOWS YOU TO
CREATE SOME FAIRLY ELABORATE DESIGNS RELATIVELY QUICKLY, AND THIS IS WHY
4096 BYTES IS SET ASIDE FOR STACK. NO DESIGN I HAVE COME UP WITH SINCE
HAS COME CLOSE TO OVERRUNNING THIS AMOUNT OF STACK. SO:
CLEAR ,,4096 ' WILL SET ASIDE 4096 BYTES FOR BASIC'S STACK.
IF YOU ARE RUNNING LODEMO AND DON'T HEAR THE BEEP WHEN YOU HIT ALT-P IN
THE FREE FORM SECTION YOU HAVE OVERFLOWED THE STACK. THE PROGRAM IS
STILL ALIVE, THOUGH. WHAT HAPPENS IS THE STACK OVERWRITES THE TOP
STRING VALUES, WHICH IN THIS CASE IS THE STRING FOR ALT-P AND SOME OF
THE SAVED FUNCTION KEY STRINGS. HITTING <ESCAPE> WILL ALLOW YOU TO
CONTINUE, BUT DON'T TRY TO SAVE THE PROGRAM.
LORES INTERFACE ROUTINES - 3/14/84 - PAGE 6
RANDOM COMMENTS, THANKS, OFFICIAL STUFF:
LORES COLOR MODE ROUTINES RESULTED FROM A CURIOSITY ON MY PART TO SEE
WHAT COULD BE DONE WITH THIS MODE OF OPERATION ON MY IBM PC. MEDIUM
RESOLUTION COLOR IS NICE, BUT I WAS ALWAYS FRUSTRATED AT HAVING SIXTEEN
COLORS IN THE MACHINE AND ONLY THOSE TWO, THREE COLOR PALETTES TO WORK
WITH. I DOUBT IF LORES COLOR WILL CATCH ON, ESPECIALLY SINCE THE IDEAL
APPLICATION IS GAMES, AND GAME PROGRAMS HAVE TO WORK ON TV'S AND NTSC
MONITORS, WHICH IS LORES'S SHORTCOMING.
LORES IS FUN TO PLAY WITH, AND THE FREE-FORM DRAWING ROUTINE IN THE
LODEMO PROGRAM HAS RESULTED IN A LOT OF TIME OUT FROM PROGRAM
DEVELOPMENT ON MY PART. ORIGINALLY LODEMO WAS JUST A FEATURE BY
FEATURE DEMONSTRATION OF THE LORES ROUTINES. THEN I THOUGHT, WHAT
BETTER WAY TO TEST THE ROUTINES THAN A FREE FORM DRAWING SECTION, THIS
WAY I COULD TEST THE ROUTINES TO DEATH AND SEE WHAT HAPPENED IN ODDBALL
SITUATIONS. THE PAINT FUNCTION RESULTED FROM THIS SECTION, I JUST HAD
TO HAVE IT IN THERE. HINT: TO GO STRAIGHT TO THIS SECTION, TYPE A
LOWERCASE 'P' DURING THE FIRST DEMO.
IT IS HARD TO CRAM A LOT OF INFORMATION ON A LORES SCREEN, SO HERE'S
ANOTHER FEATURE NOT MENTIONED: ALT-X F(X) WILL XOR THE FREE-FORM SCREEN.
IN ADDITION TO CONTROLLING THE AMOUNT THE CURSOR DOT JUMPS EACH TIME YOU
HIT A CURSOR KEY WITH THE + AND - KEYS, YOU CAN ALSO TYPE A NUMBER
BETWEEN 1 AND 9. THE PLAYTIME FREE FORM SECTION IS IN NO WAY MEANT TO BE
A COMPLETE GRAPHICS DRAWING UTILITY, BUT IT MIGHT BE NICE TO IMPLEMENT
SAVE AND LOAD FUNCTIONS TO DISK, OR PRINTER ROUTINES. I WOULD LOVE TO
HEAR FROM ANYONE WHO FINDS IT DOING BAD THINGS, OR HAS ADDED AN INTER-
ESTING FEATURE, JUST DON'T TELL ME YOU PAINTED THE WHOLE SCREEN RED WHEN
YOU MEANT BLUE.
I HAVE TO THANK DR. DOBBS MAGAZINE, AND RAY DUNCAN'S COLUMN FOR SOME OF
THE ROUTINES, LIKE LINE, CIRCLE AND THE TRIG. FUNCTIONS. ALSO DR. DOBBS
WAS THE FIRST PLACE I SAW AN EXPLANATION OF HOW LORES WORKS.
IBM IS A TRADEMARK OF INTERNATIONAL BUSINESS MACHINES CORPORATION.
DOS, BASIC, BASICA, LINK AND BASCOM REFER TO COPYRIGHTED PROGRAMS
BELONGING TO IBM AND MICROSOFT CORPORATION.
LORES INTERFACE ROUTINES ARE A COMPILATION/CREATION BY:
MARTY SMITH COMPUSERVE 72155,1214
310 CINNAMON OAK LANE
HOUSTON, TEXAS 77079
(713) 661-1241 [DAYS]
(713) 464-6737 [NIGHTS]
IF YOU HAVE PROBLEMS GETTING LORES TO WORK FOR YOU, SEND OR CALL THESE
PROBLEMS TO ME AT THE ADDRESS/NUMBER ABOVE. I WILL TRY TO HELP.
**HAVE FUN WITH LORES!**
LORES INTERFACE ROUTINES - 3/14/84 - PAGE 7